@nice2dev/ui 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/CHANGELOG.md +316 -0
  2. package/dist/NiceAlertDialog.doc-BST0-aVs.cjs +14 -0
  3. package/dist/NiceAlertDialog.doc-GRpJU_5Y.js +38 -0
  4. package/dist/NiceAnimatePresence.doc-BrttRpeS.js +36 -0
  5. package/dist/NiceAnimatePresence.doc-IdEWrSnT.cjs +12 -0
  6. package/dist/NiceCalendarScheduler.doc-Cc-DFMhR.js +33 -0
  7. package/dist/NiceCalendarScheduler.doc-TPe0kRBN.cjs +9 -0
  8. package/dist/NiceCameraFeed.doc-BJl0gdWv.js +31 -0
  9. package/dist/NiceCameraFeed.doc-Bt4eZ8MH.cjs +7 -0
  10. package/dist/NiceChip.doc-Bccf4IQe.cjs +7 -0
  11. package/dist/NiceChip.doc-DEsqjL7z.js +31 -0
  12. package/dist/NiceCombobox.doc-8hMzrsdM.js +34 -0
  13. package/dist/NiceCombobox.doc-C5IPnVuz.cjs +10 -0
  14. package/dist/NiceConfigProvider.doc-CKIudO44.js +32 -0
  15. package/dist/NiceConfigProvider.doc-bMLQj3Zx.cjs +8 -0
  16. package/dist/NiceCronEditor.doc-BThdELxx.js +31 -0
  17. package/dist/NiceCronEditor.doc-w_TbOWFo.cjs +7 -0
  18. package/dist/NiceDataList.doc-DHXrpTPT.cjs +9 -0
  19. package/dist/NiceDataList.doc-R8SchHqZ.js +33 -0
  20. package/dist/NiceDiagram.doc-CASS0Tnj.cjs +8 -0
  21. package/dist/NiceDiagram.doc-DGX-Hwhg.js +32 -0
  22. package/dist/NiceDocPage.doc-BVBe27kj.cjs +1 -0
  23. package/dist/NiceDocPage.doc-CDcL3Sqt.js +25 -0
  24. package/dist/NiceDrawingCanvas.doc-DYYFKKMW.js +32 -0
  25. package/dist/NiceDrawingCanvas.doc-wa684gbC.cjs +8 -0
  26. package/dist/NiceDropdown.doc-D2NS9hBT.js +35 -0
  27. package/dist/NiceDropdown.doc-dAgER8da.cjs +11 -0
  28. package/dist/NiceDropzone.doc-CVVNc9SE.cjs +9 -0
  29. package/dist/NiceDropzone.doc-aeajYWqU.js +33 -0
  30. package/dist/NiceEnergyMonitor.doc-BBnVKuwf.js +32 -0
  31. package/dist/NiceEnergyMonitor.doc-lf6CCIYi.cjs +8 -0
  32. package/dist/NiceErrorBoundary-COY0cEsF.js +762 -0
  33. package/dist/NiceErrorBoundary-CR-_ZScD.cjs +1 -0
  34. package/dist/NiceErrorBoundary-DBCCmeyl.js +770 -0
  35. package/dist/NiceErrorBoundary-V6wkSSLP.cjs +1 -0
  36. package/dist/NiceExpressionBuilder.doc-CTjqEcZR.cjs +8 -0
  37. package/dist/NiceExpressionBuilder.doc-Cu_ORFhd.js +32 -0
  38. package/dist/NiceFileExplorer.doc-B0aN041v.js +32 -0
  39. package/dist/NiceFileExplorer.doc-DNHYQF_t.cjs +8 -0
  40. package/dist/NiceFloatingActionButton.doc-BOlJwq4S.cjs +7 -0
  41. package/dist/NiceFloatingActionButton.doc-oYnwvMP9.js +31 -0
  42. package/dist/NiceFontPicker.doc-B10vOqeF.cjs +8 -0
  43. package/dist/NiceFontPicker.doc-DuPp0cDP.js +32 -0
  44. package/dist/NiceForm-COk1rNVa.js +5357 -0
  45. package/dist/NiceForm-CU8Dldq-.cjs +382 -0
  46. package/dist/NiceForm-DLADlHAQ.js +5383 -0
  47. package/dist/NiceForm-DUkduLqG.cjs +382 -0
  48. package/dist/NiceForm.css +1 -1
  49. package/dist/NiceGestureHandler.doc-9GGvVnM5.cjs +8 -0
  50. package/dist/NiceGestureHandler.doc-BduQU3SA.js +32 -0
  51. package/dist/NiceHeader.doc-Cxoy_f_k.cjs +6 -0
  52. package/dist/NiceHeader.doc-DjAVl-T4.js +30 -0
  53. package/dist/NiceImage.doc-COy4iVy1.js +34 -0
  54. package/dist/NiceImage.doc-CvnaTRj8.cjs +10 -0
  55. package/dist/NiceInPlaceEditor.doc-8nC6Kqvn.cjs +1 -0
  56. package/dist/NiceInPlaceEditor.doc-gF1XPyu5.js +25 -0
  57. package/dist/NiceInteractiveTimeline.doc-BTeASFR4.js +50 -0
  58. package/dist/NiceInteractiveTimeline.doc-WMOVQhMe.cjs +11 -0
  59. package/dist/NiceJsonEditor.doc-BpVa-AlY.js +31 -0
  60. package/dist/NiceJsonEditor.doc-DeyoVDQw.cjs +7 -0
  61. package/dist/NiceMegaMenu.doc-CO34gN43.cjs +7 -0
  62. package/dist/NiceMegaMenu.doc-DpchTBL6.js +31 -0
  63. package/dist/NiceMentionInput.doc-O0W58Unu.js +32 -0
  64. package/dist/NiceMentionInput.doc-ZSPjBsZc.cjs +8 -0
  65. package/dist/NiceModal-CIITx65V.cjs +1 -0
  66. package/dist/NiceModal-CN23FZsc.js +95 -0
  67. package/dist/NiceModal-CUdeVj-j.js +95 -0
  68. package/dist/NiceModal-Cc8R-DpX.cjs +1 -0
  69. package/dist/NiceModuleLifecyclePanel-4UEsYB5r.js +6553 -0
  70. package/dist/NiceModuleLifecyclePanel-BDnsr5ZW.js +6349 -0
  71. package/dist/NiceModuleLifecyclePanel-C6agdtTI.cjs +1 -0
  72. package/dist/NiceModuleLifecyclePanel-F1uN0gMh.cjs +1 -0
  73. package/dist/NiceModuleLifecyclePanel.css +1 -1
  74. package/dist/NiceMotion.doc-COF5BldG.cjs +9 -0
  75. package/dist/NiceMotion.doc-utheTBgM.js +33 -0
  76. package/dist/NiceMultiColumnComboBox.doc-Ben0Q0J0.cjs +1 -0
  77. package/dist/NiceMultiColumnComboBox.doc-CK1DppZI.js +25 -0
  78. package/dist/NiceNotificationList.doc-CBWusjJX.cjs +7 -0
  79. package/dist/NiceNotificationList.doc-D7lQIxK0.js +31 -0
  80. package/dist/NiceOfflineSync.doc-BLQFyOf2.cjs +8 -0
  81. package/dist/NiceOfflineSync.doc-CKWFmR3b.js +32 -0
  82. package/dist/NicePagination-B4U0LwZy.js +171 -0
  83. package/dist/NicePagination-CGQf54a9.cjs +1 -0
  84. package/dist/NicePagination-Cqr3Pe_F.js +171 -0
  85. package/dist/NicePagination-DyWWdtb3.cjs +1 -0
  86. package/dist/NicePinCodeInput-C6zJxUVf.cjs +419 -0
  87. package/dist/NicePinCodeInput-DG_-eXXJ.cjs +419 -0
  88. package/dist/NicePinCodeInput-g-yUiepm.js +11875 -0
  89. package/dist/NicePinCodeInput-ltwzQf4r.js +12240 -0
  90. package/dist/NicePinCodeInput.css +1 -1
  91. package/dist/NicePreview.doc-Cl7_5MVR.js +30 -0
  92. package/dist/NicePreview.doc-atKISvmp.cjs +6 -0
  93. package/dist/NicePropertyGrid.doc-D6xljYe1.cjs +7 -0
  94. package/dist/NicePropertyGrid.doc-nX2etusg.js +31 -0
  95. package/dist/NiceRadio.doc-BTURz62X.js +27 -0
  96. package/dist/NiceRadio.doc-Cc8-1vbn.cjs +3 -0
  97. package/dist/NiceRecurrencePicker.doc-78HjPJm0.js +31 -0
  98. package/dist/NiceRecurrencePicker.doc-vC2YmCXF.cjs +7 -0
  99. package/dist/NiceRichTextEditor.doc-ClPCkzCd.cjs +6 -0
  100. package/dist/NiceRichTextEditor.doc-CtmV9UvX.js +30 -0
  101. package/dist/NiceSavedQueryPanel-BIXW0y1X.js +6455 -0
  102. package/dist/NiceSavedQueryPanel-CE3QR4RY.js +6446 -0
  103. package/dist/NiceSavedQueryPanel-CFHwMDIx.cjs +596 -0
  104. package/dist/NiceSavedQueryPanel-DSnj-3Es.cjs +596 -0
  105. package/dist/NiceSavedQueryPanel.css +1 -1
  106. package/dist/NiceSceneSelector.doc-CY2OmaWQ.cjs +7 -0
  107. package/dist/NiceSceneSelector.doc-UsVgDrw1.js +31 -0
  108. package/dist/NiceScrollArea.doc-C6Y-odUa.js +27 -0
  109. package/dist/NiceScrollArea.doc-LdxDrGDY.cjs +3 -0
  110. package/dist/NiceSheet.doc-CsIu3Y1G.cjs +11 -0
  111. package/dist/NiceSheet.doc-DLfSY-MA.js +35 -0
  112. package/dist/NiceSpeedDial.doc-CSWvNR9n.cjs +7 -0
  113. package/dist/NiceSpeedDial.doc-DqnpBcMy.js +31 -0
  114. package/dist/NiceSplitPane.doc-Ck_FvdL6.cjs +9 -0
  115. package/dist/NiceSplitPane.doc-Di68JZuy.js +33 -0
  116. package/dist/NiceSpotlight.doc-CM4PnsHE.js +34 -0
  117. package/dist/NiceSpotlight.doc-Dm_B-kUJ.cjs +10 -0
  118. package/dist/NiceStepNavigation.doc-DXraCs7t.js +31 -0
  119. package/dist/NiceStepNavigation.doc-TSy2dWmf.cjs +7 -0
  120. package/dist/NiceSteps.doc-C_mkhnez.cjs +10 -0
  121. package/dist/NiceSteps.doc-PW1zubHM.js +34 -0
  122. package/dist/NiceSwitch.doc-CLc7OxrE.cjs +6 -0
  123. package/dist/NiceSwitch.doc-dGMMY4es.js +30 -0
  124. package/dist/NiceTabs-32xjguOv.cjs +1 -0
  125. package/dist/NiceTabs-B9zxj6qd.js +1657 -0
  126. package/dist/NiceTabs-Blk0h4jY.js +1624 -0
  127. package/dist/NiceTabs-CNauJ4fu.cjs +1 -0
  128. package/dist/NiceTransition.doc-BmImVoB8.js +35 -0
  129. package/dist/NiceTransition.doc-GA1N91ON.cjs +11 -0
  130. package/dist/NiceTree.doc-D7SCXljC.js +40 -0
  131. package/dist/NiceTree.doc-DZx3hUwY.cjs +16 -0
  132. package/dist/NiceUnitConverter.doc-DmiyYOH_.cjs +10 -0
  133. package/dist/NiceUnitConverter.doc-YnzD3uKT.js +34 -0
  134. package/dist/NiceVirtualGrid.doc-DI2c9ckY.js +35 -0
  135. package/dist/NiceVirtualGrid.doc-rtwudxTG.cjs +11 -0
  136. package/dist/NiceVirtualList.doc-BpoTiXoV.js +31 -0
  137. package/dist/NiceVirtualList.doc-C8q-Hfl0.cjs +7 -0
  138. package/dist/NiceWindow-B4jA_-hi.js +1409 -0
  139. package/dist/NiceWindow-Bo_yCa1o.js +1418 -0
  140. package/dist/NiceWindow-DPzJxOfx.cjs +1 -0
  141. package/dist/NiceWindow-UpKllge7.cjs +1 -0
  142. package/dist/charts-0BEMJ0Xt.js +4657 -0
  143. package/dist/charts-C60va95_.js +4657 -0
  144. package/dist/charts-CbxmU6Z2.cjs +761 -0
  145. package/dist/charts-D_I1iwel.cjs +761 -0
  146. package/dist/charts.cjs +1 -1
  147. package/dist/charts.css +1 -1
  148. package/dist/charts.d.ts +19 -19
  149. package/dist/charts.mjs +1 -1
  150. package/dist/core-BIA5_uSq.js +22316 -0
  151. package/dist/core-Bcc4sz15.cjs +96 -0
  152. package/dist/core-DQYnL6uf.cjs +96 -0
  153. package/dist/core-Da1dGJN3.js +22401 -0
  154. package/dist/data.cjs +1 -1
  155. package/dist/data.d.ts +5 -0
  156. package/dist/data.mjs +1 -1
  157. package/dist/editors.cjs +1 -1
  158. package/dist/editors.d.ts +44 -1
  159. package/dist/editors.mjs +3 -3
  160. package/dist/feedback.cjs +1 -1
  161. package/dist/feedback.d.ts +10 -10
  162. package/dist/feedback.mjs +2 -2
  163. package/dist/index-BjBsn6ad.cjs +5194 -0
  164. package/dist/index-C2Uoywo9.js +63852 -0
  165. package/dist/index-DCDfWfAt.js +64336 -0
  166. package/dist/index-DpiCo0_e.cjs +5194 -0
  167. package/dist/index.cjs +1 -1
  168. package/dist/index.css +1 -1
  169. package/dist/index.d.ts +1798 -57
  170. package/dist/index.mjs +943 -895
  171. package/dist/lazy.cjs +1 -1
  172. package/dist/lazy.d.ts +4 -3
  173. package/dist/lazy.mjs +3 -3
  174. package/dist/navigation.cjs +1 -1
  175. package/dist/navigation.d.ts +15 -1
  176. package/dist/navigation.mjs +30 -30
  177. package/dist/overlays.cjs +1 -1
  178. package/dist/overlays.mjs +53 -53
  179. package/dist/style.css +6 -6
  180. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,3 +1,319 @@
1
+ # [1.0.19] — 2026-05-26
2
+
3
+ ### Fixed — NiceNavShell breakpoint sync
4
+
5
+ - **`mobileBreakpoint` default obniżony 960 → 720** żeby zgrać moment
6
+ zniknięcia desktopowego sidebar z momentem pojawienia się hamburgera
7
+ w `NiceTopNav` (oba komponenty domyślnie 720). Eliminuje „martwą
8
+ strefę" 720–960, w której sidebar już nie był widoczny a hamburger
9
+ jeszcze się nie pokazał.
10
+ - **`NiceNavShellApi.isMobile`** — render-prop slot consumers
11
+ (`topNav={(api) => ...}`) otrzymują flagę `isMobile` żeby przekazać
12
+ `forceMobileLayout={api.isMobile}` do własnego `NiceTopNav`. JSDoc na
13
+ `mobileBreakpoint` przypomina by zmienić ten prop na obu komponentach
14
+ jednocześnie, jeśli konsument chce inną wartość.
15
+
16
+ ### Fixed / Added — NiceTopNav narrow mode polish
17
+
18
+ - **Mobile panel header** — nowe propsy `showMobilePanelSelector`,
19
+ `mobilePanels`, `activeMobilePanelId`, `onMobilePanelChange`,
20
+ `showMobilePanelModes`, `mobilePanelModes` pozwalają wstrzyknąć dwa
21
+ opcjonalne wiersze nad menu w pull-down panelu hamburgera: natywny
22
+ `<select>` z workspace'ami i pasek trybów (ikony + etykiety reużywające
23
+ `SIDEBAR_MODE_META`). Widoczność obu wierszy sterowana wyłącznie
24
+ propsami (gate dodatkowo wymaga zalogowanego `user`).
25
+ - **Ghost variant** dla `NiceLanguagePicker`, `NiceThemePicker`,
26
+ `NiceCountryPicker`, `NiceNotifications` i `NiceTopNavExtraActionButton`
27
+ (Settings/extraActions). Aktywuje się automatycznie w narrow mode topnav
28
+ — borderless trigger, ikona-only, bez chevron arrow.
29
+ - **Narrow-mode 3-wiersz layout** — header w narrow mode (`isMobile ||
30
+ forceMobileLayout`) renderuje trzy edge-to-edge wiersze: brand
31
+ (transparent), accessories (`--bg-secondary`), hamburger (`--bg-tertiary`).
32
+ `padding: 0` na headerze + `max-width: none; margin-inline: 0` na inner
33
+ → pasek 100 % szerokości niezależnie od propa `maxWidth`.
34
+ - **Hamburger row hover** — cały wiersz hamburgera jest teraz klikalny;
35
+ przycisk rozciąga się na 100% szerokości wiersza, hover/focus podświetla
36
+ cały pasek a nie tylko niewielki box wokół ikony.
37
+ - **Pull-down panel anchoring** — `hamburgerDrawer` przeniesiony WEWNĄTRZ
38
+ `.nice-top-nav__inner` (zamiast pod `<header>`). `__inner` dostał
39
+ `position: relative` → panel `position: absolute; top: 100%` wysuwa się
40
+ dokładnie spod widocznego paska.
41
+ - **Picker dropdowny w narrow mode** anchorują się teraz do
42
+ `.nice-top-nav__row--accessories` (`position: relative` na wierszu +
43
+ `position: static` na pickerach + `left/right: 0` na dropdownach) →
44
+ rozwijają się na 100% szerokości kontenera, bez przycinania lewą
45
+ krawędzią.
46
+ - **Hamburger ↔ pickery — mutual exclusion**: klik hamburgera zamyka
47
+ `activeCluster` (lang/theme/search); otwarcie pickera zamyka
48
+ `mobileOpen`. Dropdowny nie nakładają się już na panel mobilny.
49
+ - **Notification badge w ghost variant** ma teraz mniejszy font (9 px),
50
+ węższy ring i pozycję `top/right: 0` — nie wystaje poza ghost trigger.
51
+ - **NiceAuthButtons w narrow mode** wymusza `size="sm"` + CSS override
52
+ zmniejsza `.nice-user-menu__avatar` do 28 px, pasuje do reszty ikon ghost.
53
+ - **NiceTopNav `rightCluster` swap** — kolejność w toolbarze: notifications
54
+ → extraActions → settings → auth/avatar → rightContent (zarówno desktop
55
+ jak i narrow). Settings przed loginem dla spójności z innymi shellami.
56
+
57
+ ### Internal
58
+
59
+ - `NiceTopNavExtraActionButton` dostał prop `variant?: 'default' | 'ghost'`.
60
+ - Wszystkie picker triggery w ghost mają teraz `background: transparent`
61
+ na hover/focus/open (zero podświetlenia "kontenera").
62
+
63
+ ---
64
+
65
+ # [1.1.0] — 2026-05-21 (cd. — batch 6: number/rate/file/search/tag/prompt/palette/lightbox)
66
+
67
+ ### Added — Numeric input / rating / async search / tag input / overlays / command palette
68
+
69
+ Kolejne 8 planned-only doc.json stubs → real components
70
+ (64/64 tests passed):
71
+
72
+ **Editors / inputs:**
73
+
74
+ - `NiceNumericInput` — spinbutton z +/-, clamping, step, precision,
75
+ pluggable `format` (string z `{value}` placeholder lub funkcja).
76
+ `role="spinbutton"` + pełne `aria-valuenow/min/max`.
77
+ - `NiceRate` — star rating z arrow-key nav, Home/End extremes,
78
+ `allowHalf` granulacją, custom character override, clear-on-click-same.
79
+ - `NiceFilePicker` — visual wrapper na `<input type=file>` z hidden
80
+ input w tab orderze (keyboard equivalence) + proxy clicku z
81
+ customowego triggera. `useNiceTranslation('filePicker.label')`.
82
+ - `NiceSearchInput` — combobox z async suggestions + recents
83
+ fallback, request-id guard (stale responses swallowed),
84
+ Down/Up nav + Enter pick.
85
+ - `NiceTagInput` — chip multi-value input z paste-with-separator,
86
+ Backspace-deletes-last, suggestions filter, maxTags cap.
87
+
88
+ **Overlays:**
89
+
90
+ - `NicePromptDialog` — modal asking for single value (replacement
91
+ dla `window.prompt`). Auto-focus, Enter submits, Escape +
92
+ backdrop cancel. Labels przez `useNiceTranslation('ok','cancel')`.
93
+ - `NiceLightbox` — full-screen image viewer z prev/next nav,
94
+ zoom (+/- keys + buttons), download button, N/M counter.
95
+ Wszystkie toolbar labels przez i18n.
96
+
97
+ **Navigation:**
98
+
99
+ - `NiceCommandBar` — searchable command palette (Ctrl+K-style)
100
+ z filterowaniem po `label`+`keywords`, grupowaniem po `category`,
101
+ shortcut chip per item, opcjonalnym global shortcut do otwarcia.
102
+
103
+ ---
104
+
105
+ # [1.1.0] — 2026-05-20 (cd. — batch 5: form fields / feedback / nav / shell)
106
+
107
+ ### Added — Form fields / feedback / mobile gesture / nav / shell
108
+
109
+ Kolejne 8 planned-only doc.json stubs → real components
110
+ (52/52 tests passed):
111
+
112
+ **Editors / inputs:**
113
+
114
+ - `NiceCheckboxGroup` — multi-select checkbox set, controlled / uncontrolled,
115
+ horizontal / vertical, per-option disable.
116
+ - `NiceToggleGroup` — compound component (`<NiceToggleGroup.Item>`),
117
+ single OR multi-select, ARIA toggle-button pattern z `aria-pressed`.
118
+ - `NiceOTPInput` — multi-digit OTP z auto-advance, Backspace step-back,
119
+ Arrow Left/Right nav, pełny-kod paste, separator slot.
120
+ `autoComplete="one-time-code"` dla OS-level autofill.
121
+
122
+ **Editors / pickers:**
123
+
124
+ - `NiceCascadeSelect` — multi-column cascading dropdown dla hierarchii.
125
+ Placeholder przez `useNiceTranslation('cascadeSelect.placeholder')`.
126
+
127
+ **Feedback:**
128
+
129
+ - `NiceResult` — full-page result state (success/error/info/warning/pending).
130
+ `role="alert"` dla error, `role="status"` dla pozostałych.
131
+
132
+ **Display:**
133
+
134
+ - `NiceSwipeCard` — pointer-driven swipe card z unified touch/mouse/pen.
135
+ Threshold-based commit + arrow-key fallback.
136
+
137
+ **Navigation:**
138
+
139
+ - `NiceTabBar` — top-level section nav, ARIA tablist pattern, arrow-key
140
+ - Home/End nav skipping disabled tabs, roving tabIndex.
141
+
142
+ **Layout:**
143
+
144
+ - `NiceLayout` — app shell (header/aside/main/footer) z natywnymi HTML5
145
+ landmarks. Sider placement start/end.
146
+
147
+ ---
148
+
149
+ # [1.1.0] — 2026-05-20 (cd. — batch 4: numerical / disclosure / chrome primitives)
150
+
151
+ ### Added — Numerical / disclosure / page-chrome primitives
152
+
153
+ Kolejne 8 planned-only doc.json stubs → real components
154
+ (46/46 tests passed):
155
+
156
+ **Display (numerical / decorative):**
157
+
158
+ - `NiceCountUp` — animated counter z requestAnimationFrame + ease-out
159
+ cubic, decimals/prefix/suffix/separator, `onComplete` callback.
160
+ `aria-label` z final value (AT czyta destination raz, nie każdy tick).
161
+ - `NiceCountdown` — live countdown do `targetDate`, formats
162
+ `full`/`compact`/`minimal`, per-unit visibility, `role="timer"`
163
+ - `aria-live="polite"`. Labels przez `useNiceTranslation`
164
+ (`countdown.days/hours/minutes/seconds`).
165
+ - `NiceCollapsibleCard` — card z built-in collapse affordance,
166
+ trigger='header' lub 'icon'. Chevron `aria-label` przez
167
+ `useNiceTranslation('collapsibleCard.expand/collapse')`.
168
+ - `NiceRibbon` — corner banner przyklejający się do top corner
169
+ wrapped elementu (wrapper auto position:relative).
170
+
171
+ **Layout (disclosure / chrome):**
172
+
173
+ - `NiceCollapse` — single-panel disclosure z aria-expanded +
174
+ aria-controls auto-wired, controlled / uncontrolled mode.
175
+ - `NiceFooter` — semantic `<footer>` z contentinfo landmark, link
176
+ groups jako `<nav>`, social icons z explicit accessible labels,
177
+ optional sticky positioning.
178
+ - `NicePageHeader` — dashboard chrome (breadcrumb + back + avatar +
179
+ title + tags + actions + footer slot). Back button label przez
180
+ `useNiceTranslation('pageHeader.back')`.
181
+ - `NiceCardGrid` — CSS-Grid layout z responsive columns
182
+ (fixed number lub per-breakpoint map). Reflow czysto CSS bez
183
+ resize listenera (scoped `<style>` z media queries + CSS variable).
184
+
185
+ ---
186
+
187
+ # [1.1.0] — 2026-05-20 (cd. — batch 3: utility / a11y / nav primitives)
188
+
189
+ ### Added — Utility / accessibility / navigation primitives
190
+
191
+ Kolejne 8 planned-only doc.json stubs → real components
192
+ (33/33 tests passed):
193
+
194
+ **Utility / accessibility:**
195
+
196
+ - `NiceClickOutside` — declarative outside-click detector
197
+ (component form of `useClickOutside`). Optional `disabled` flag,
198
+ configurable `mouseEvent` (mousedown/click/mouseup).
199
+ - `NiceFocusTrap` — cycles Tab / Shift+Tab between focusable
200
+ descendants. `initialFocus` accepts ref OR CSS selector. Restores
201
+ focus on deactivate by default.
202
+ - `NiceLiveRegion` — visually-hidden (or visible) ARIA live region
203
+ with politeness / atomic / relevant knobs.
204
+ - `NiceSuspense` — drop-in `React.Suspense` z `delay` (ms) gate —
205
+ prevents the spinner-flash anti-pattern for fast resolves.
206
+
207
+ **Navigation:**
208
+
209
+ - `NiceAnchor` — table-of-contents nav z IntersectionObserver
210
+ scroll-spy + smooth-scroll on click, nested items, optional
211
+ `position: sticky`.
212
+
213
+ **Display:**
214
+
215
+ - `NiceBackTop` — floating back-to-top button z ease-out cubic
216
+ tween, custom target / duration / glyph. Label przez
217
+ `useNiceTranslation('backTop.aria')`.
218
+
219
+ **Layout:**
220
+
221
+ - `NiceAffix` — sticky-position wrapper z onChange callback i
222
+ same-size placeholder zachowującym document flow.
223
+ - `NiceMediaObject` — classic media object pattern (image-with-content
224
+ row layout), configurable position / align / spacing.
225
+
226
+ ---
227
+
228
+ # [1.1.0] — 2026-05-20 (cd. — batch 2: more primitives)
229
+
230
+ ### Added — Layout / typography / display / tools / feedback primitives
231
+
232
+ Kolejne 8 planned-only doc.json stubs zostało zaimplementowanych jako
233
+ prawdziwe kontrolki (47/47 testów passed):
234
+
235
+ **Typography:**
236
+
237
+ - `NiceHeading` — semantic h1-h6 z odsprzężoną skalą wizualną
238
+ (`xs`-`3xl`). Renderuje natywny tag dla a11y, designerzy wybierają
239
+ rozmiar niezależnie od poziomu.
240
+ - `NiceParagraph` — body-text z wariantami `lead` / `muted` i 3
241
+ rozmiarami (sm/md/lg).
242
+ - `NiceLink` — styled `<a>` z `external` przełączającym automatycznie
243
+ `target=_blank` + `rel=noopener noreferrer` (chroni przed
244
+ tab-napping).
245
+
246
+ **Layout:**
247
+
248
+ - `NiceContainer` — centrowany wrapper z width preset
249
+ (sm 640 / md 768 / lg 1024 / xl 1280 / full), `padding` na padding-inline.
250
+ - `NiceSection` — `<section>` z opcjonalnym headerem
251
+ (title / subtitle / actions slot) i `divider`.
252
+
253
+ **Display:**
254
+
255
+ - `NiceStatistic` — KPI tile: tytuł, locale-formatted value (`Intl.NumberFormat`),
256
+ pre/suffix, trend chip z kolorem (up/down).
257
+
258
+ **Tools:**
259
+
260
+ - `NiceCopyButton` — copy-to-clipboard z timed feedback. Async
261
+ Clipboard API + execCommand fallback. Etykiety przez
262
+ `useNiceTranslation` (`copy.label`, `copy.success`, `copy.aria`).
263
+
264
+ **Feedback:**
265
+
266
+ - `NiceCallout` — info/warning/error/success/tip block z opcjonalnym
267
+ title, custom icon, dismiss button. `role=alert` dla error,
268
+ `role=status` dla pozostałych. Etykieta przez
269
+ `useNiceTranslation('callout.dismiss')`.
270
+
271
+ ---
272
+
273
+ # [1.1.0] — 2026-05-20
274
+
275
+ ### Added — Layout & typography primitives
276
+
277
+ Eight long-standing "planned" doc.json stubs are now real components,
278
+ implemented as thin CSS-in-component wrappers so consumers can stay
279
+ in JSX without dropping to inline style or className soup.
280
+
281
+ **Layout** (`packages/ui/src/layout/`):
282
+
283
+ - `NiceCenter` — flex centering on one or both axes, with optional
284
+ `minHeight` for vertical-only scenarios and `inline` for inline-flex.
285
+ - `NiceStack` — one-dimensional layout with uniform `spacing`, optional
286
+ `divider` element interleaved between every pair of children.
287
+ - `NiceFlex` — direct flexbox container exposing the full `direction` /
288
+ `wrap` / `justify` / `align` / `gap` surface.
289
+ - `NiceSpacer` — flexible (`flex`) or fixed-size (`size`) whitespace
290
+ element, with `axis` control. `aria-hidden`.
291
+ - `NiceAspectRatio` — width:height ratio container using native CSS
292
+ `aspect-ratio`. Accepts number (`16/9 = 1.777…`) or shorthand string.
293
+
294
+ **Typography** (`packages/ui/src/typography/`):
295
+
296
+ - `NiceBlockquote` — semantic `<blockquote>` with optional `author` /
297
+ `cite` footer; three visual variants (`default` / `bordered` /
298
+ `filled`).
299
+ - `NiceTruncate` — multi-line line-clamp with optional Show more /
300
+ Show less toggle. Toggle labels go through `useNiceTranslation`
301
+ (`truncate.expand` / `truncate.collapse`) so they follow the global
302
+ language picker.
303
+ - `NiceHighlight` — wraps matches of a `query` (string or array) inside
304
+ the source `text` with `<mark>` (or a custom tag). Regex-safe input
305
+ escaping; case-insensitive by default.
306
+
307
+ **Migration:** The old `packages/ui/docs/<Name>.doc.json` planned stubs
308
+ were deleted and replaced with `status: "stable"` doc.json files
309
+ colocated next to each `.tsx`. The playground catalog now publishes
310
+ these as real components.
311
+
312
+ **Tests:** Eight new specs added under `__tests__/`. All eight pass
313
+ (47 assertions total).
314
+
315
+ ---
316
+
1
317
  # [1.0.14] — 2026-05-11
2
318
 
3
319
  ### Added — CSS Import Support for Vite/Webpack/React
@@ -0,0 +1,14 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceAlertDialog",o="Alert dialog for important messages.",i="overlay",n="1.0.0",a="planned",c=[{name:"open",type:"boolean",required:!0,description:"Open state"},{name:"onOpenChange",type:"(open: boolean) => void",description:"Open state change"},{name:"title",type:"React.ReactNode",description:"Dialog title"},{name:"description",type:"React.ReactNode",description:"Dialog description"},{name:"children",type:"React.ReactNode",description:"Dialog content"}],l=[{title:"Alert Dialog",description:"Important message alert",code:`<NiceAlertDialog open={showAlert} onOpenChange={setShowAlert}>
2
+ <NiceAlertDialog.Content>
3
+ <NiceAlertDialog.Header>
4
+ <NiceAlertDialog.Title>Warning</NiceAlertDialog.Title>
5
+ <NiceAlertDialog.Description>
6
+ Are you sure you want to continue?
7
+ </NiceAlertDialog.Description>
8
+ </NiceAlertDialog.Header>
9
+ <NiceAlertDialog.Footer>
10
+ <NiceAlertDialog.Cancel>Cancel</NiceAlertDialog.Cancel>
11
+ <NiceAlertDialog.Action>Continue</NiceAlertDialog.Action>
12
+ </NiceAlertDialog.Footer>
13
+ </NiceAlertDialog.Content>
14
+ </NiceAlertDialog>`}],r={keyboard:["Tab between buttons","Escape to close"],aria:["role=alertdialog","aria-labelledby","aria-describedby"]},s=["NiceDialog","NiceConfirmDialog","NiceModal"],p={$schema:e,name:t,description:o,category:i,since:n,status:a,props:c,examples:l,accessibility:r,seeAlso:s};exports.$schema=e;exports.accessibility=r;exports.category=i;exports.default=p;exports.description=o;exports.examples=l;exports.name=t;exports.props=c;exports.seeAlso=s;exports.since=n;exports.status=a;
@@ -0,0 +1,38 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceAlertDialog", o = "Alert dialog for important messages.", i = "overlay", n = "1.0.0", a = "planned", c = [{ name: "open", type: "boolean", required: !0, description: "Open state" }, { name: "onOpenChange", type: "(open: boolean) => void", description: "Open state change" }, { name: "title", type: "React.ReactNode", description: "Dialog title" }, { name: "description", type: "React.ReactNode", description: "Dialog description" }, { name: "children", type: "React.ReactNode", description: "Dialog content" }], l = [{ title: "Alert Dialog", description: "Important message alert", code: `<NiceAlertDialog open={showAlert} onOpenChange={setShowAlert}>
2
+ <NiceAlertDialog.Content>
3
+ <NiceAlertDialog.Header>
4
+ <NiceAlertDialog.Title>Warning</NiceAlertDialog.Title>
5
+ <NiceAlertDialog.Description>
6
+ Are you sure you want to continue?
7
+ </NiceAlertDialog.Description>
8
+ </NiceAlertDialog.Header>
9
+ <NiceAlertDialog.Footer>
10
+ <NiceAlertDialog.Cancel>Cancel</NiceAlertDialog.Cancel>
11
+ <NiceAlertDialog.Action>Continue</NiceAlertDialog.Action>
12
+ </NiceAlertDialog.Footer>
13
+ </NiceAlertDialog.Content>
14
+ </NiceAlertDialog>` }], r = { keyboard: ["Tab between buttons", "Escape to close"], aria: ["role=alertdialog", "aria-labelledby", "aria-describedby"] }, s = ["NiceDialog", "NiceConfirmDialog", "NiceModal"], g = {
15
+ $schema: e,
16
+ name: t,
17
+ description: o,
18
+ category: i,
19
+ since: n,
20
+ status: a,
21
+ props: c,
22
+ examples: l,
23
+ accessibility: r,
24
+ seeAlso: s
25
+ };
26
+ export {
27
+ e as $schema,
28
+ r as accessibility,
29
+ i as category,
30
+ g as default,
31
+ o as description,
32
+ l as examples,
33
+ t as name,
34
+ c as props,
35
+ s as seeAlso,
36
+ n as since,
37
+ a as status
38
+ };
@@ -0,0 +1,36 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", n = "NiceAnimatePresence", t = "Animate components as they mount/unmount.", i = "utility", o = "1.0.0", c = "planned", a = [{ name: "children", type: "React.ReactNode", required: !0, description: "Children to animate" }, { name: "initial", type: "boolean", default: "true", description: "Animate on initial mount" }, { name: "mode", type: "'sync' | 'wait' | 'popLayout'", default: "'sync'", description: "Animation mode" }, { name: "onExitComplete", type: "() => void", description: "Exit complete callback" }], s = [{ title: "Animate Presence", description: "Mount/unmount animations", code: `<NiceAnimatePresence mode="wait">
2
+ {items.map(item => (
3
+ <motion.div
4
+ key={item.id}
5
+ initial={{ opacity: 0, y: 20 }}
6
+ animate={{ opacity: 1, y: 0 }}
7
+ exit={{ opacity: 0, y: -20 }}
8
+ >
9
+ {item.content}
10
+ </motion.div>
11
+ ))}
12
+ </NiceAnimatePresence>` }], m = { keyboard: [], aria: ["Reduced motion support"] }, d = ["NiceTransition", "NiceMotion"], p = {
13
+ $schema: e,
14
+ name: n,
15
+ description: t,
16
+ category: i,
17
+ since: o,
18
+ status: c,
19
+ props: a,
20
+ examples: s,
21
+ accessibility: m,
22
+ seeAlso: d
23
+ };
24
+ export {
25
+ e as $schema,
26
+ m as accessibility,
27
+ i as category,
28
+ p as default,
29
+ t as description,
30
+ s as examples,
31
+ n as name,
32
+ a as props,
33
+ d as seeAlso,
34
+ o as since,
35
+ c as status
36
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceAnimatePresence",n="Animate components as they mount/unmount.",i="utility",o="1.0.0",c="planned",a=[{name:"children",type:"React.ReactNode",required:!0,description:"Children to animate"},{name:"initial",type:"boolean",default:"true",description:"Animate on initial mount"},{name:"mode",type:"'sync' | 'wait' | 'popLayout'",default:"'sync'",description:"Animation mode"},{name:"onExitComplete",type:"() => void",description:"Exit complete callback"}],s=[{title:"Animate Presence",description:"Mount/unmount animations",code:`<NiceAnimatePresence mode="wait">
2
+ {items.map(item => (
3
+ <motion.div
4
+ key={item.id}
5
+ initial={{ opacity: 0, y: 20 }}
6
+ animate={{ opacity: 1, y: 0 }}
7
+ exit={{ opacity: 0, y: -20 }}
8
+ >
9
+ {item.content}
10
+ </motion.div>
11
+ ))}
12
+ </NiceAnimatePresence>`}],m={keyboard:[],aria:["Reduced motion support"]},p=["NiceTransition","NiceMotion"],d={$schema:e,name:t,description:n,category:i,since:o,status:c,props:a,examples:s,accessibility:m,seeAlso:p};exports.$schema=e;exports.accessibility=m;exports.category=i;exports.default=d;exports.description=n;exports.examples=s;exports.name=t;exports.props=a;exports.seeAlso=p;exports.since=o;exports.status=c;
@@ -0,0 +1,33 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceCalendarScheduler", n = "Calendar scheduler for appointments and event management.", a = "planning", c = "1.0.0", o = "planned", r = [{ name: "events", type: "SchedulerEvent[]", required: !0, description: "Event data" }, { name: "view", type: "'day' | 'week' | 'month' | 'agenda'", default: "'week'", description: "View mode" }, { name: "date", type: "Date", required: !0, description: "Current date" }, { name: "onDateChange", type: "(date: Date) => void", description: "Date change callback" }, { name: "onEventClick", type: "(event: SchedulerEvent) => void", description: "Event click callback" }, { name: "onEventCreate", type: "(start: Date, end: Date) => void", description: "Create event callback" }, { name: "onEventUpdate", type: "(event: SchedulerEvent) => void", description: "Update event callback" }, { name: "resources", type: "Resource[]", description: "Resources for multi-resource view" }, { name: "workingHours", type: "WorkingHours", description: "Working hours config" }], i = [{ title: "Calendar Scheduler", description: "Schedule events", code: `<NiceCalendarScheduler
2
+ events={appointments}
3
+ view="week"
4
+ date={currentDate}
5
+ onDateChange={setCurrentDate}
6
+ onEventClick={openEvent}
7
+ onEventCreate={createEvent}
8
+ onEventUpdate={updateEvent}
9
+ />` }], s = { keyboard: ["Arrow keys to navigate", "Enter to select"], aria: ["Calendar scheduler", "Event descriptions"] }, d = ["NiceDatePicker", "NiceGanttChart"], p = {
10
+ $schema: e,
11
+ name: t,
12
+ description: n,
13
+ category: a,
14
+ since: c,
15
+ status: o,
16
+ props: r,
17
+ examples: i,
18
+ accessibility: s,
19
+ seeAlso: d
20
+ };
21
+ export {
22
+ e as $schema,
23
+ s as accessibility,
24
+ a as category,
25
+ p as default,
26
+ n as description,
27
+ i as examples,
28
+ t as name,
29
+ r as props,
30
+ d as seeAlso,
31
+ c as since,
32
+ o as status
33
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceCalendarScheduler",n="Calendar scheduler for appointments and event management.",a="planning",c="1.0.0",o="planned",r=[{name:"events",type:"SchedulerEvent[]",required:!0,description:"Event data"},{name:"view",type:"'day' | 'week' | 'month' | 'agenda'",default:"'week'",description:"View mode"},{name:"date",type:"Date",required:!0,description:"Current date"},{name:"onDateChange",type:"(date: Date) => void",description:"Date change callback"},{name:"onEventClick",type:"(event: SchedulerEvent) => void",description:"Event click callback"},{name:"onEventCreate",type:"(start: Date, end: Date) => void",description:"Create event callback"},{name:"onEventUpdate",type:"(event: SchedulerEvent) => void",description:"Update event callback"},{name:"resources",type:"Resource[]",description:"Resources for multi-resource view"},{name:"workingHours",type:"WorkingHours",description:"Working hours config"}],s=[{title:"Calendar Scheduler",description:"Schedule events",code:`<NiceCalendarScheduler
2
+ events={appointments}
3
+ view="week"
4
+ date={currentDate}
5
+ onDateChange={setCurrentDate}
6
+ onEventClick={openEvent}
7
+ onEventCreate={createEvent}
8
+ onEventUpdate={updateEvent}
9
+ />`}],i={keyboard:["Arrow keys to navigate","Enter to select"],aria:["Calendar scheduler","Event descriptions"]},d=["NiceDatePicker","NiceGanttChart"],l={$schema:e,name:t,description:n,category:a,since:c,status:o,props:r,examples:s,accessibility:i,seeAlso:d};exports.$schema=e;exports.accessibility=i;exports.category=a;exports.default=l;exports.description=n;exports.examples=s;exports.name=t;exports.props=r;exports.seeAlso=d;exports.since=c;exports.status=o;
@@ -0,0 +1,31 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", o = "NiceCameraFeed", n = "Security camera live feed with PTZ controls and recording.", a = "smart-home", t = "1.0.0", r = "planned", s = [{ name: "camera", type: "Camera", required: !0, description: "Camera info" }, { name: "streamUrl", type: "string", required: !0, description: "Stream URL" }, { name: "onPTZControl", type: "(command: PTZCommand) => Promise<void>", description: "PTZ callback" }, { name: "onSnapshot", type: "() => Promise<string>", description: "Snapshot callback" }, { name: "onRecordToggle", type: "(recording: boolean) => Promise<void>", description: "Record callback" }, { name: "showControls", type: "boolean", default: "true", description: "Show controls" }, { name: "showTimestamp", type: "boolean", default: "true", description: "Show timestamp" }, { name: "fullscreenEnabled", type: "boolean", default: "true", description: "Allow fullscreen" }], c = [{ title: "Camera Feed", description: "View camera", code: `<NiceCameraFeed
2
+ camera={securityCamera}
3
+ streamUrl={camera.streamUrl}
4
+ onPTZControl={sendPTZCommand}
5
+ onSnapshot={takeSnapshot}
6
+ showControls
7
+ />` }], i = { keyboard: ["Tab through controls", "Arrow keys for PTZ"], aria: ["Video feed", "Control buttons"] }, m = ["NiceVideoPlayer", "NiceSensorGaugePanel"], d = {
8
+ $schema: e,
9
+ name: o,
10
+ description: n,
11
+ category: a,
12
+ since: t,
13
+ status: r,
14
+ props: s,
15
+ examples: c,
16
+ accessibility: i,
17
+ seeAlso: m
18
+ };
19
+ export {
20
+ e as $schema,
21
+ i as accessibility,
22
+ a as category,
23
+ d as default,
24
+ n as description,
25
+ c as examples,
26
+ o as name,
27
+ s as props,
28
+ m as seeAlso,
29
+ t as since,
30
+ r as status
31
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",o="NiceCameraFeed",t="Security camera live feed with PTZ controls and recording.",a="smart-home",n="1.0.0",r="planned",s=[{name:"camera",type:"Camera",required:!0,description:"Camera info"},{name:"streamUrl",type:"string",required:!0,description:"Stream URL"},{name:"onPTZControl",type:"(command: PTZCommand) => Promise<void>",description:"PTZ callback"},{name:"onSnapshot",type:"() => Promise<string>",description:"Snapshot callback"},{name:"onRecordToggle",type:"(recording: boolean) => Promise<void>",description:"Record callback"},{name:"showControls",type:"boolean",default:"true",description:"Show controls"},{name:"showTimestamp",type:"boolean",default:"true",description:"Show timestamp"},{name:"fullscreenEnabled",type:"boolean",default:"true",description:"Allow fullscreen"}],c=[{title:"Camera Feed",description:"View camera",code:`<NiceCameraFeed
2
+ camera={securityCamera}
3
+ streamUrl={camera.streamUrl}
4
+ onPTZControl={sendPTZCommand}
5
+ onSnapshot={takeSnapshot}
6
+ showControls
7
+ />`}],i={keyboard:["Tab through controls","Arrow keys for PTZ"],aria:["Video feed","Control buttons"]},m=["NiceVideoPlayer","NiceSensorGaugePanel"],l={$schema:e,name:o,description:t,category:a,since:n,status:r,props:s,examples:c,accessibility:i,seeAlso:m};exports.$schema=e;exports.accessibility=i;exports.category=a;exports.default=l;exports.description=t;exports.examples=c;exports.name=o;exports.props=s;exports.seeAlso=m;exports.since=n;exports.status=r;
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceChip",i="Chip/pill component for selections.",c="display",n="1.0.0",a="planned",o=[{name:"children",type:"React.ReactNode",required:!0,description:"Chip content"},{name:"variant",type:"'filled' | 'outlined'",default:"'filled'",description:"Chip variant"},{name:"color",type:"'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error'",default:"'default'",description:"Chip color"},{name:"size",type:"'sm' | 'md' | 'lg'",default:"'md'",description:"Chip size"},{name:"avatar",type:"React.ReactNode",description:"Avatar element"},{name:"icon",type:"React.ReactNode",description:"Leading icon"},{name:"deletable",type:"boolean",default:"false",description:"Show delete icon"},{name:"disabled",type:"boolean",default:"false",description:"Disabled state"},{name:"onClick",type:"() => void",description:"Click callback"},{name:"onDelete",type:"() => void",description:"Delete callback"}],s=[{title:"Chip",description:"Selection chip",code:`<NiceChip
2
+ avatar={<NiceAvatar src="/user.jpg" size="xs" />}
3
+ deletable
4
+ onDelete={handleDelete}
5
+ >
6
+ John Doe
7
+ </NiceChip>`}],l={keyboard:["Tab to focus","Enter to click","Delete to remove"],aria:["Button or static element"]},d=["NiceTag","NiceTagInput"],p={$schema:e,name:t,description:i,category:c,since:n,status:a,props:o,examples:s,accessibility:l,seeAlso:d};exports.$schema=e;exports.accessibility=l;exports.category=c;exports.default=p;exports.description=i;exports.examples=s;exports.name=t;exports.props=o;exports.seeAlso=d;exports.since=n;exports.status=a;
@@ -0,0 +1,31 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceChip", i = "Chip/pill component for selections.", n = "display", a = "1.0.0", c = "planned", o = [{ name: "children", type: "React.ReactNode", required: !0, description: "Chip content" }, { name: "variant", type: "'filled' | 'outlined'", default: "'filled'", description: "Chip variant" }, { name: "color", type: "'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error'", default: "'default'", description: "Chip color" }, { name: "size", type: "'sm' | 'md' | 'lg'", default: "'md'", description: "Chip size" }, { name: "avatar", type: "React.ReactNode", description: "Avatar element" }, { name: "icon", type: "React.ReactNode", description: "Leading icon" }, { name: "deletable", type: "boolean", default: "false", description: "Show delete icon" }, { name: "disabled", type: "boolean", default: "false", description: "Disabled state" }, { name: "onClick", type: "() => void", description: "Click callback" }, { name: "onDelete", type: "() => void", description: "Delete callback" }], s = [{ title: "Chip", description: "Selection chip", code: `<NiceChip
2
+ avatar={<NiceAvatar src="/user.jpg" size="xs" />}
3
+ deletable
4
+ onDelete={handleDelete}
5
+ >
6
+ John Doe
7
+ </NiceChip>` }], l = { keyboard: ["Tab to focus", "Enter to click", "Delete to remove"], aria: ["Button or static element"] }, d = ["NiceTag", "NiceTagInput"], p = {
8
+ $schema: e,
9
+ name: t,
10
+ description: i,
11
+ category: n,
12
+ since: a,
13
+ status: c,
14
+ props: o,
15
+ examples: s,
16
+ accessibility: l,
17
+ seeAlso: d
18
+ };
19
+ export {
20
+ e as $schema,
21
+ l as accessibility,
22
+ n as category,
23
+ p as default,
24
+ i as description,
25
+ s as examples,
26
+ t as name,
27
+ o as props,
28
+ d as seeAlso,
29
+ a as since,
30
+ c as status
31
+ };
@@ -0,0 +1,34 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", o = "NiceCombobox", t = "Combobox with search and custom input.", n = "input", a = "1.0.0", l = "planned", s = [{ name: "value", type: "string", description: "Current value" }, { name: "defaultValue", type: "string", description: "Default value" }, { name: "options", type: "{ label: string; value: string }[]", description: "Available options" }, { name: "placeholder", type: "string", description: "Placeholder text" }, { name: "disabled", type: "boolean", default: "false", description: "Disabled state" }, { name: "allowCustomValue", type: "boolean", default: "true", description: "Allow entering custom values" }, { name: "filter", type: "(query: string, option: Option) => boolean", description: "Custom filter function" }, { name: "onChange", type: "(value: string) => void", description: "Change callback" }, { name: "onSearch", type: "(query: string) => void", description: "Search callback" }], c = [{ title: "Combobox", description: "Searchable combobox", code: `<NiceCombobox
2
+ options={[
3
+ { label: 'React', value: 'react' },
4
+ { label: 'Vue', value: 'vue' },
5
+ { label: 'Angular', value: 'angular' }
6
+ ]}
7
+ placeholder="Select or type..."
8
+ allowCustomValue
9
+ onChange={(value) => console.log('Selected:', value)}
10
+ />` }], i = { keyboard: ["Type to filter", "Arrow keys to navigate", "Enter to select"], aria: ["Combobox role", "Listbox popup"] }, r = ["NiceSelect", "NiceAutocomplete"], p = {
11
+ $schema: e,
12
+ name: o,
13
+ description: t,
14
+ category: n,
15
+ since: a,
16
+ status: l,
17
+ props: s,
18
+ examples: c,
19
+ accessibility: i,
20
+ seeAlso: r
21
+ };
22
+ export {
23
+ e as $schema,
24
+ i as accessibility,
25
+ n as category,
26
+ p as default,
27
+ t as description,
28
+ c as examples,
29
+ o as name,
30
+ s as props,
31
+ r as seeAlso,
32
+ a as since,
33
+ l as status
34
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",o="NiceCombobox",t="Combobox with search and custom input.",n="input",a="1.0.0",l="planned",s=[{name:"value",type:"string",description:"Current value"},{name:"defaultValue",type:"string",description:"Default value"},{name:"options",type:"{ label: string; value: string }[]",description:"Available options"},{name:"placeholder",type:"string",description:"Placeholder text"},{name:"disabled",type:"boolean",default:"false",description:"Disabled state"},{name:"allowCustomValue",type:"boolean",default:"true",description:"Allow entering custom values"},{name:"filter",type:"(query: string, option: Option) => boolean",description:"Custom filter function"},{name:"onChange",type:"(value: string) => void",description:"Change callback"},{name:"onSearch",type:"(query: string) => void",description:"Search callback"}],i=[{title:"Combobox",description:"Searchable combobox",code:`<NiceCombobox
2
+ options={[
3
+ { label: 'React', value: 'react' },
4
+ { label: 'Vue', value: 'vue' },
5
+ { label: 'Angular', value: 'angular' }
6
+ ]}
7
+ placeholder="Select or type..."
8
+ allowCustomValue
9
+ onChange={(value) => console.log('Selected:', value)}
10
+ />`}],c={keyboard:["Type to filter","Arrow keys to navigate","Enter to select"],aria:["Combobox role","Listbox popup"]},r=["NiceSelect","NiceAutocomplete"],p={$schema:e,name:o,description:t,category:n,since:a,status:l,props:s,examples:i,accessibility:c,seeAlso:r};exports.$schema=e;exports.accessibility=c;exports.category=n;exports.default=p;exports.description=t;exports.examples=i;exports.name=o;exports.props=s;exports.seeAlso=r;exports.since=a;exports.status=l;
@@ -0,0 +1,32 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", n = "NiceConfigProvider", o = "Global configuration provider.", i = "utility", t = "1.0.0", c = "planned", r = [{ name: "children", type: "React.ReactNode", required: !0, description: "Provider children" }, { name: "locale", type: "Locale", description: "Locale configuration" }, { name: "theme", type: "ThemeConfig", description: "Theme configuration" }, { name: "prefixCls", type: "string", description: "Component class prefix" }, { name: "componentSize", type: "'small' | 'middle' | 'large'", description: "Default component size" }, { name: "direction", type: "'ltr' | 'rtl'", default: "'ltr'", description: "Text direction" }, { name: "renderEmpty", type: "(componentName: string) => React.ReactNode", description: "Empty state renderer" }], a = [{ title: "Config Provider", description: "Global configuration", code: `<NiceConfigProvider
2
+ locale={enUS}
3
+ theme={{ primaryColor: '#1890ff' }}
4
+ componentSize="middle"
5
+ direction="ltr"
6
+ >
7
+ <App />
8
+ </NiceConfigProvider>` }], s = { keyboard: [], aria: ["Language announcement"] }, d = ["NiceThemeProvider", "NiceI18nProvider"], p = {
9
+ $schema: e,
10
+ name: n,
11
+ description: o,
12
+ category: i,
13
+ since: t,
14
+ status: c,
15
+ props: r,
16
+ examples: a,
17
+ accessibility: s,
18
+ seeAlso: d
19
+ };
20
+ export {
21
+ e as $schema,
22
+ s as accessibility,
23
+ i as category,
24
+ p as default,
25
+ o as description,
26
+ a as examples,
27
+ n as name,
28
+ r as props,
29
+ d as seeAlso,
30
+ t as since,
31
+ c as status
32
+ };